﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace exception1
{
    class Test
    {
        public void Dzialania()
        {
            try
            {
                Console.WriteLine("Program do dzielenia 2 liczb");
                Console.WriteLine("Podaj a:");
                double a = double.Parse(Console.ReadLine());
                Console.WriteLine("Podaj b:");
                double b = double.Parse(Console.ReadLine());
                double wynik;
                Console.WriteLine("Dzielenie {0} przez {1} ", a, b);
                wynik = Dzielenie(a, b);
                Console.WriteLine("{0} / {1} = {2}", a, b, wynik);
            }
            // 1 wyjatek dzielenie przez 0
            catch (DivideByZeroException)
            {
                Console.WriteLine("Wystapienie wyjatku DivideByZeroException");
            }
            // 2 wyjatek jako przyklad przy dzieleniu 0 przez liczbe
            catch (ArithmeticException)
            {
                Console.WriteLine("Wystapienie wyjatku ArithmeticException");
            }
            // pozostale nieznane wyjatki
            catch
            {
                Console.WriteLine("Wystapienie nieznanego wyjatku");
            }
        }// public void Działania()

        public double Dzielenie(double a, double b)
        {
            if (b == 0)
                throw new DivideByZeroException();
            if (a == 0)
                throw new ArithmeticException();
            return a / b;
        }// public double Dzielenie()


        static void Main(string[] args)
        {
            Console.WriteLine("WE w funkcje Main() ");
            Test t = new Test();
            t.Dzialania();
            Console.WriteLine("WY z funkcji Main() ");

        }// Main()
    }// class Test
}
